home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection Student Program / ADC Tools Sampler CD Disk 3 1999.iso / Cool Demos, SDKs, & Tools / Demos⁄Tools⁄Offers / Eiffel for CW beta 3 / Example Projects / EiffelText / ThreeDMetafile.h < prev    next >
Text File  |  1999-02-21  |  10KB  |  240 lines

  1. /*
  2.     File:        ThreeDMetafile.h
  3.  
  4.     Contains:    3D viewer support for SimpleText
  5.  
  6.     Version:    GX 1.2 or later
  7.  
  8. ** Copyright 1994-1996 Apple Computer. All rights reserved.
  9. **
  10. **    You may incorporate this sample code into your applications without
  11. **    restriction, though the sample code has been provided "AS IS" and the
  12. **    responsibility for its operation is 100% yours.  However, what you are
  13. **    not permitted to do is to redistribute the source as "DSC Sample Code"
  14. **    after having made changes. If you're going to re-distribute the source,
  15. **    we require that you make it clear in the source that the code was
  16. **    descended from Apple Sample Code, but that you've made changes.
  17.  
  18. **  YES - THIS HAS BEEN CHANGED FOR EIFFEL TEXT.
  19. */
  20.  
  21.  
  22. #include "EiffelText.h"
  23.  
  24.  
  25. #define kThreeDWindowID    kThreeDBaseID
  26.  
  27.  
  28. #ifndef REZ
  29.     typedef long ViewerObject;
  30.  
  31.     struct ThreeDDataRecord
  32.         {
  33.         WindowDataRecord        w;
  34.         
  35.         ViewerObject            viewerObject;
  36.         };
  37.     typedef struct ThreeDDataRecord ThreeDDataRecord, *ThreeDDataPtr;    
  38.  
  39.     enum {
  40.         kQ3ViewerShowBadge             = 1<<0,
  41.         kQ3ViewerActive                = 1<<1,
  42.         kQ3ViewerControllerVisible    = 1<<2,
  43.         kQ3ViewerDrawFrame            = 1<<3,
  44.         kQ3ViewerDraggingOff        = 1<<4,
  45.         
  46.         kQ3ViewerButtonCamera        = 1<<5,
  47.         kQ3ViewerButtonTruck        = 1<<6,
  48.         kQ3ViewerButtonOrbit        = 1<<7,
  49.         kQ3ViewerButtonZoom            = 1<<8,
  50.         kQ3ViewerButtonDolly        = 1<<9,
  51.         
  52.     
  53.         kQ3ViewerDefault = (
  54.                     kQ3ViewerActive        | kQ3ViewerControllerVisible | 
  55.                     kQ3ViewerButtonCamera  | kQ3ViewerButtonTruck       | 
  56.                     kQ3ViewerButtonOrbit   | kQ3ViewerButtonDolly )
  57.     };
  58.  
  59.     enum {
  60.         uppViewerLibNewProcInfo = kCStackBased
  61.              | RESULT_SIZE(SIZE_CODE(sizeof(Ptr)))
  62.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(CGrafPtr)))
  63.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Rect*)))
  64.              | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))),
  65.         uppViewerLibDisposeProcInfo = kCStackBased
  66.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  67.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr))),
  68.  
  69.         uppViewerLibUseFileProcInfo = kCStackBased
  70.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  71.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  72.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))),
  73.         uppViewerLibUseDataProcInfo = kCStackBased
  74.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  75.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  76.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void*)))
  77.              | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))),
  78.  
  79.         uppViewerLibWriteFileProcInfo = kCStackBased
  80.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  81.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  82.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))),
  83.         uppViewerLibWriteDataProcInfo = kCStackBased
  84.              | RESULT_SIZE(SIZE_CODE(sizeof(unsigned long)))
  85.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  86.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void**))),
  87.  
  88.         uppViewerLibDrawProcInfo = kCStackBased
  89.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  90.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
  91.  
  92.         uppViewerLibGetPictProcInfo = kCStackBased
  93.              | RESULT_SIZE(SIZE_CODE(sizeof(PicHandle)))
  94.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
  95.         uppViewerLibGetButtonRectProcInfo = kCStackBased
  96.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  97.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  98.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(unsigned long)))
  99.              | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Rect*))),
  100.  
  101.         uppViewerLibGetDimensionProcInfo = kCStackBased
  102.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  103.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  104.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long*)))
  105.              | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long*))),
  106.  
  107.         uppViewerLibSetFlagsProcInfo = kCStackBased
  108.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  109.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  110.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(unsigned long))),
  111.         uppViewerLibGetFlagsProcInfo = kCStackBased
  112.              | RESULT_SIZE(SIZE_CODE(sizeof(unsigned long)))
  113.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
  114.  
  115.         uppViewerLibSetBoundsProcInfo = kCStackBased
  116.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  117.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  118.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Rect*))),
  119.         uppViewerLibGetBoundsProcInfo = kCStackBased
  120.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  121.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  122.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Rect*))),
  123.  
  124.         uppViewerLibSetPortProcInfo = kCStackBased
  125.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  126.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  127.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(CGrafPtr))),
  128.         uppViewerLibGetPortProcInfo = kCStackBased
  129.              | RESULT_SIZE(SIZE_CODE(sizeof(CGrafPtr)))
  130.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
  131.  
  132.         uppViewerLibEventProcInfo = kCStackBased
  133.              | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  134.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  135.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(EventRecord*))),
  136.         uppViewerLibAdjustCursorProcInfo = kCStackBased
  137.              | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  138.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  139.              | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Point*))),
  140.  
  141.         uppViewerLibGetStateProcInfo = kCStackBased
  142.              | RESULT_SIZE(SIZE_CODE(sizeof(unsigned long)))
  143.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
  144.  
  145.         uppViewerLibClearProcInfo = kCStackBased
  146.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  147.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
  148.         uppViewerLibCutProcInfo = kCStackBased
  149.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  150.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
  151.         uppViewerLibCopyProcInfo = kCStackBased
  152.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  153.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject))),
  154.         uppViewerLibPasteProcInfo = kCStackBased
  155.              | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  156.              | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ViewerObject)))
  157.  
  158.         };
  159.         
  160.     // Proc pointer typedefs
  161.     typedef ViewerObject (*ViewerLib_NewType) (CGrafPtr port,  Rect *rect,  unsigned long flags);
  162.     typedef OSErr (*ViewerLib_DisposeType) (ViewerObject theViewer);
  163.  
  164.     typedef OSErr (*ViewerLib_UseFileType) (ViewerObject theViewer, long refNum);
  165.     typedef OSErr (*ViewerLib_UseDataType)  (ViewerObject theViewer, void *data, long size);
  166.  
  167.     typedef OSErr (*ViewerLib_WriteFileType) (ViewerObject theViewer, long refNum);
  168.     typedef unsigned long (*ViewerLib_WriteDataType)  (ViewerObject theViewer, void **data);
  169.  
  170.     typedef OSErr (*ViewerLib_DrawType) (ViewerObject theViewer);
  171.  
  172.     typedef PicHandle (*ViewerLib_GetPictType) (ViewerObject theViewer);
  173.     typedef OSErr     (*ViewerLib_GetButtonRectType) (ViewerObject theViewer, unsigned long button, Rect *rect);
  174.  
  175.     typedef OSErr (*ViewerLib_GetDimensionType) (ViewerObject theViewer, long *width, long* height);
  176.     
  177.     typedef OSErr (*ViewerLib_SetFlagsType) (ViewerObject theViewer, unsigned long flags);
  178.     typedef unsigned long (*ViewerLib_GetFlagsType) (ViewerObject theViewer);
  179.  
  180.     typedef OSErr (*ViewerLib_SetBoundsType) (ViewerObject theViewer, Rect *bounds);
  181.     typedef OSErr (*ViewerLib_GetBoundsType) (ViewerObject theViewer, Rect *bounds);
  182.  
  183.     typedef OSErr (*ViewerLib_SetPortType) (ViewerObject theViewer, CGrafPtr port);
  184.     typedef CGrafPtr (*ViewerLib_GetPortType) (ViewerObject theViewer);
  185.  
  186.     typedef Boolean (*ViewerLib_EventType) (ViewerObject theViewer, EventRecord *evt);
  187.     typedef Boolean (*ViewerLib_AdjustCursorType) (ViewerObject theViewer, Point *pt);
  188.  
  189.     typedef unsigned long (*ViewerLib_GetStateType) (ViewerObject theViewer);
  190.  
  191.     typedef OSErr (*ViewerLib_ClearType) (ViewerObject theViewer);
  192.     typedef OSErr (*ViewerLib_CutType) (ViewerObject theViewer);
  193.     typedef OSErr (*ViewerLib_CopyType) (ViewerObject theViewer);
  194.     typedef OSErr (*ViewerLib_PasteType) (ViewerObject theViewer);
  195.  
  196.  
  197.     typedef struct
  198.         {
  199.         ProcInfoType        info;
  200.         void                *entry;
  201.         } GlobalEntry;
  202.         
  203.     // Macro calls
  204.     #define ViewerLib_New(A,B,C) (*(ViewerLib_NewType)(gProcPointers[0].entry)) (A, B, C)
  205.     #define ViewerLib_Dispose(A) (*(ViewerLib_DisposeType)(gProcPointers[1].entry)) (A)
  206.     
  207.     #define ViewerLib_UseFile(A,B) (*(ViewerLib_UseFileType)(gProcPointers[2].entry)) (A, B)
  208.     #define ViewerLib_UseData(A,B,C) (*(ViewerLib_UseDataType)(gProcPointers[3].entry)) (A, B, C)
  209.  
  210.     #define ViewerLib_WriteFile(A,B) (*(ViewerLib_WriteFileType)(gProcPointers[4].entry)) (A, B)
  211.     #define ViewerLib_WriteData(A,B) (*(ViewerLib_WriteDataType)(gProcPointers[5].entry)) (A, B)
  212.     
  213.     #define ViewerLib_Draw(A) (*(ViewerLib_DrawType)(gProcPointers[6].entry)) (A)
  214.  
  215.     #define ViewerLib_GetPict(A) (*(ViewerLib_GetPictType)(gProcPointers[7].entry)) (A)
  216.     #define ViewerLib_GetButtonRect(A,B,C) (*(ViewerLib_GetButtonRectType)(gProcPointers[8].entry)) (A,B,C)
  217.  
  218.     #define ViewerLib_GetDimension(A,B,C) (*(ViewerLib_GetDimensionType)(gProcPointers[9].entry)) (A,B,C)
  219.     
  220.     #define ViewerLib_SetFlags(A,B) (*(ViewerLib_SetFlagsType)(gProcPointers[10].entry)) (A, B)
  221.     #define ViewerLib_GetFlags(A) (*(ViewerLib_GetFlagsType)(gProcPointers[11].entry)) (A)
  222.  
  223.     #define ViewerLib_SetBounds(A,B) (*(ViewerLib_SetBoundsType)(gProcPointers[12].entry)) (A, B)
  224.     #define ViewerLib_GetBounds(A,B) (*(ViewerLib_GetBoundsType)(gProcPointers[13].entry)) (A, B)
  225.  
  226.     #define ViewerLib_SetPort(A,B) (*(ViewerLib_SetPortType)(gProcPointers[14].entry)) (A, B)
  227.     #define ViewerLib_GetPort(A) (*(ViewerLib_GetPortType)(gProcPointers[15].entry)) (A)
  228.  
  229.     #define ViewerLib_Event(A,B) (*(ViewerLib_EventType)(gProcPointers[16].entry)) (A, B)
  230.     #define ViewerLib_AdjustCursor(A,B) (*(ViewerLib_AdjustCursorType)(gProcPointers[17].entry)) (A, B)
  231.  
  232.     #define ViewerLib_GetState(A) (*(ViewerLib_GetStateType)(gProcPointers[18].entry)) (A)
  233.  
  234.     #define ViewerLib_Clear(A) (*(ViewerLib_ClearType)(gProcPointers[19].entry)) (A)
  235.     #define ViewerLib_Cut(A) (*(ViewerLib_CutType)(gProcPointers[20].entry)) (A)
  236.     #define ViewerLib_Copy(A) (*(ViewerLib_CopyType)(gProcPointers[21].entry)) (A)
  237.     #define ViewerLib_Paste(A) (*(ViewerLib_PasteType)(gProcPointers[22].entry)) (A)
  238.  
  239. #endif
  240.